#!/usr/bin/env python
#encoding latin1

from grafo_nodo import *

def nuevo_grafo():
    return dict()

def grafo_agregar_nodo(grafo,nombre_nodo):
        grafo[nombre_nodo] = nodo_grafo()

def grafo_agregar_conexion(grafo,nombre_saliente,nombre_entrante, peso = 0):
    if grafo.__contains__(nombre_saliente) and grafo.__contains__(nombre_entrante):
        nodo_agregar_conexion(grafo[nombre_saliente],nombre_entrante,peso,salida)
        nodo_agregar_conexion(grafo[nombre_entrante],nombre_saliente,peso,entrada)

def grafo_quitar_conexion(grafo,nombre_saliente,nombre_entrante):
    if grafo.__contains__(nombre_saliente) and grafo.__contains__(nombre_entrante):
        nodo_quitar_conexion(grafo[nombre_saliente],nombre_entrante,salida)
        nodo_quitar_conexion(grafo[nombre_entrante],nombre_saliente,entrada)

def grafo_quitar_nodo(grafo,nombre_nodo):
    if grafo.__contains__(nombre_nodo):
        nodo = grafo[nombre_nodo]
        entradas = nodo.entradas
        salidas = nodo.salidas
        for elem in entradas:
            grafo_quitar_conexion(grafo,nombre_nodo,elem)
        for elem in salidas:
            grafo_quitar_conexion(grafo,elem,nombre_nodo)

def grafo_imprimir(grafo):
    for nombre in grafo.keys():
        print(nombre)
        nodo_imprimir(grafo[nombre])
